home *** CD-ROM | disk | FTP | other *** search
- VERSION 4.00
- Begin VB.Form CircleForm
- Caption = "Circle 3"
- ClientHeight = 5670
- ClientLeft = 2085
- ClientTop = 735
- ClientWidth = 4830
- Height = 6360
- Left = 2025
- LinkTopic = "Form1"
- ScaleHeight = 378
- ScaleMode = 3 'Pixel
- ScaleWidth = 322
- Top = 105
- Width = 4950
- Begin VB.TextBox ThetaText
- Height = 285
- Left = 4200
- TabIndex = 11
- Text = "30"
- Top = 480
- Width = 615
- End
- Begin VB.TextBox YscaleText
- Height = 285
- Left = 2160
- TabIndex = 9
- Text = "0.5"
- Top = 480
- Width = 615
- End
- Begin VB.TextBox XscaleText
- Height = 285
- Left = 600
- TabIndex = 7
- Text = "1.0"
- Top = 480
- Width = 615
- End
- Begin VB.TextBox DtText
- Height = 285
- Left = 2160
- TabIndex = 6
- Text = "0.1"
- Top = 45
- Width = 615
- End
- Begin VB.TextBox TminText
- Height = 285
- Left = 0
- TabIndex = 4
- Text = "0"
- Top = 45
- Width = 615
- End
- Begin VB.CommandButton CmdGo
- Caption = "Go"
- Default = -1 'True
- Height = 375
- Left = 4200
- TabIndex = 3
- Top = 0
- Width = 615
- End
- Begin VB.TextBox TmaxText
- Height = 285
- Left = 1200
- TabIndex = 2
- Text = "6.2832"
- Top = 45
- Width = 615
- End
- Begin VB.PictureBox Canvas
- AutoRedraw = -1 'True
- Height = 4815
- Left = 0
- ScaleHeight = -2.2
- ScaleLeft = -1.1
- ScaleMode = 0 'User
- ScaleTop = 1.1
- ScaleWidth = 2.2
- TabIndex = 0
- Top = 840
- Width = 4815
- End
- Begin VB.Label Label1
- Caption = "Angle (degrees)"
- Height = 255
- Index = 5
- Left = 3000
- TabIndex = 12
- Top = 525
- Width = 1215
- End
- Begin VB.Label Label1
- Caption = "Y scale"
- Height = 255
- Index = 3
- Left = 1560
- TabIndex = 10
- Top = 525
- Width = 615
- End
- Begin VB.Label Label1
- Caption = "X scale"
- Height = 255
- Index = 2
- Left = 0
- TabIndex = 8
- Top = 525
- Width = 615
- End
- Begin VB.Label Label1
- Caption = "dt"
- Height = 255
- Index = 1
- Left = 1920
- TabIndex = 5
- Top = 60
- Width = 255
- End
- Begin VB.Label Label1
- Caption = "<= t <="
- Height = 255
- Index = 0
- Left = 645
- TabIndex = 1
- Top = 60
- Width = 495
- End
- Begin VB.Menu mnuFile
- Caption = "&File"
- Begin VB.Menu mnuFileExit
- Caption = "E&xit"
- End
- End
- Attribute VB_Name = "CircleForm"
- Attribute VB_Creatable = False
- Attribute VB_Exposed = False
- Option Explicit
- Const PI = 3.14159
- ' ************************************************
- ' Draw the curve on the indicated picture box.
- ' ************************************************
- Sub DrawCurve(pic As PictureBox, start_t As Single, stop_t As Single, dt As Single, xscale As Single, yscale As Single, theta As Single)
- Dim x1 As Single
- Dim y1 As Single
- Dim x2 As Single
- Dim y2 As Single
- Dim ctheta As Single
- Dim stheta As Single
- Dim t As Single
- ' Save these values because we use them a lot.
- stheta = Sin(theta)
- ctheta = Cos(theta)
- x1 = xscale * X(start_t)
- y1 = yscale * Y(start_t)
- x2 = x1 * ctheta - y1 * stheta
- y2 = x1 * stheta + y1 * ctheta
- pic.Cls
- pic.CurrentX = x2
- pic.CurrentY = y2
- t = start_t + dt
- Do While t < stop_t
- x1 = xscale * X(t)
- y1 = yscale * Y(t)
- x2 = x1 * ctheta - y1 * stheta
- y2 = x1 * stheta + y1 * ctheta
- pic.Line -(x2, y2)
- t = t + dt
- Loop
- x1 = xscale * X(stop_t)
- y1 = yscale * Y(stop_t)
- x2 = x1 * ctheta - y1 * stheta
- y2 = x1 * stheta + y1 * ctheta
- pic.Line -(x2, y2)
- End Sub
- ' ************************************************
- ' The parametric function Y(t).
- ' ************************************************
- Function Y(t As Single) As Single
- Y = Sin(t)
- End Function
- ' ************************************************
- ' The parametric function X(t).
- ' ************************************************
- Function X(t As Single) As Single
- X = Cos(t)
- End Function
- Private Sub CmdGo_Click()
- Dim tmin As Single
- Dim tmax As Single
- Dim dt As Single
- Dim xscale As Single
- Dim yscale As Single
- Dim theta As Single
- tmin = CSng(TminText.Text)
- tmax = CSng(TmaxText.Text)
- dt = CSng(DtText.Text)
- xscale = CSng(XscaleText.Text)
- yscale = CSng(YscaleText.Text)
- theta = CSng(ThetaText.Text) / 180 * PI
- DrawCurve Canvas, tmin, tmax, dt, xscale, yscale, theta
- End Sub
- Private Sub mnuFileExit_Click()
- Unload Me
- End Sub
-